
//978.最长湍流数组
class Solution {
public:
    int maxTurbulenceSize(vector<int>& arr) {
        //数组一增一减的趋势
        int n=arr.size();
        if(n==1) return 1;
        int i=0,ret=1;
        while(i<n-1)
        {
            if(arr[i]==arr[i+1]) //相等的数据直接过滤掉
            {
                i++;
                continue;
            }
            int start=i++;  //记录起始位置
            int flag=arr[i]-arr[start]>0?1:-1;  //记录上一个位置是递增还是递减
            while(i<n-1&&(flag*(arr[i+1]-arr[i])<0)) 
            {
                flag=arr[i+1]-arr[i]>0?1:-1;    //更新flag记录的位置
                i++;
            }

            ret=max(ret,i-start+1);  //更新答案
        }
        return ret;
    }
};